import type { IRawVideoData, IVideoData, IRawModelCard } from '../../../../types'; import { cleanVideoData, videoDataAddModelIcon, getUrlWithProxiedParams } from '../../../../runtime'; export default defineEventHandler(async (event): Promise => { const apiUrl = process.env.NUXT_PUBLIC_API_DOMAIN; const id = getRouterParam(event, 'id'); const requestHeaders = getRequestHeaders(event); const clientHeaders: HeadersInit = { ...requestHeaders, 'user-agent': requestHeaders[ 'user-agent' ] ?? '', }; const videoUrl = getUrlWithProxiedParams(`${apiUrl}/v1/video/id/${id}`, event); const modelsUrl = getUrlWithProxiedParams(`${apiUrl}/v2/models/list-by-video-id/${id}`, event); const [videoRaw, modelsRaw] = await Promise.all([ apiFetch(videoUrl, { method: 'GET', headers: clientHeaders, }), apiFetch(modelsUrl, { method: 'GET', headers: clientHeaders }).catch(() => null), ]); const videoData = videoRaw.data as IRawVideoData; const modelsData = modelsRaw?.data as Record<'items', Array>; return cleanVideoData(videoData?.models ? videoDataAddModelIcon(videoData, modelsData?.items || []) : videoData); });